﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using RN.ERP.DTO;
using System.Data;

namespace RN.ERP
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的接口名“IPersonService”。
    [ServiceContract]
    public interface IPersonService
    {
        #region 人员基本信息相关

        /// <summary>
        /// 查询身份证号是否存在。
        /// </summary>
        /// <param name="idcard"></param>
        /// <returns></returns>
        [OperationContract]
        bool IsIDCardExists(string idcard, string areaCode);

        /// <summary>
        /// 查询人员变更项集合。
        /// </summary>
        /// <param name="changeType">变更类型。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonChangeItems(string changeType, string areaCode);

        /// <summary>
        /// 获取企业下的管理人员信息。
        /// </summary>
        /// <param name="corpUserGuid">企业编号。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonManagers(string corpUserGuid, string condition, string areaCode);

        /// <summary>
        /// 获取企业下的普通工人信息。
        /// </summary>
        /// <param name="corpUserGuid">企业编号。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonEmployee(string corpUserGuid, string condition, string areaCode);

        /// <summary>
        /// 根据人员编号查询人员信息。
        /// </summary>
        /// <param name="userId">人员编号。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonInfo(string userId, string areaCode);

        [OperationContract]
        string GetEmpGuid(string id, string areaCode);

        [OperationContract]
        string AddPersonInfo(string personInfo, string areaCode);

        [OperationContract]
        string EditPersonInfo(string personId, string personInfo, string areaCode);

        [OperationContract]
        string DeletePersonInfo(string personId, string areaCode);

        [OperationContract]
        string SubmitPersonInfo(string personId, string areaCode);

        [OperationContract]
        string AuditPersonInfo(string personId, string flowCode, string descriptin, bool isFinal, string areaCode);

        [OperationContract]
        string GetPersonEmployeeByQualityId(string qualityId, string areaCode);
        [OperationContract]
        string GetPersonEmployeeByQualityBId(string qualityBId, string areaCode);

        [OperationContract]
        string GetPersonType(string empGuid, string areaCode);


        #endregion

        #region 获取人员资格相关

        /// <summary>
        /// 获取人员资格项集合。
        /// </summary>
        /// <param name="personType">人员类型。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonQualityItems(string changeType, string areaCode);

        /// <summary>
        /// 获取人员资格集合。
        /// </summary>
        /// <param name="userId">人员编号。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonQualities(string personId, string areaCode);

        /// <summary>
        /// 获取资格信息。
        /// </summary>
        /// <param name="qualityId">资格编号。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonQuality(string qualityId, string areaCode);

        [OperationContract]
        string GetPersonBQuality(string personId, string areaCode);

        #endregion

        #region 获取人员变更相关

        /// <summary>
        /// 获取人员变更列表。
        /// </summary>
        /// <param name="corpName">企业名称。</param>
        /// <param name="corpUserGuid">企业编号。</param>
        /// <param name="userName">人员名称。</param>
        /// <param name="flowCode">审核状态。</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonChanges(string corpUserGuid, string flowCode, string condition, int pageindex, int pagesize, out int count, string areaCode);

        [OperationContract]
        string GetPersonChangeDetails(int changeSetId, string areaCode);

        [OperationContract]
        string AddPersonChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string EditPersonChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string DeletePersonChange(string changeId, string userGuid, string userRole, string userName, string areaCode);

        /// <summary>
        /// 上报人员变更记录。
        /// </summary>
        /// <param name="changeIds">变更记录ID列表。（IList String）</param>
        /// <param name="userGuid">用户GUID。</param>
        /// <param name="userRole">用户角色。</param>
        /// <param name="userName">用户名称。</param>
        /// <returns></returns>
        [OperationContract]
        string SubmitPersonChange(string changeIds, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string AuditPersonChange(string changeId, string flowCode, string description, bool isFinal, string userGuid, string userRole, string userName, string areaCode);

        /// <summary>
        /// 提供对应变更项变更前的数据查询功能。
        /// </summary>
        /// <param name="changeItem">变更项。</param>
        /// <param name="parameters">查询参数。需要和数据库中BeforeSQL字段查询参数对应。</param>
        /// <returns></returns>
        [OperationContract]
        string GetBeforeChangeValue(string changeItem, string[] parameters, string areaCode);

        /// <summary>
        /// 提供对应变更项需要填充下拉列表等集合信息的数据查询功能。
        /// </summary>
        /// <param name="changeItem"></param>
        /// <returns></returns>
        [OperationContract]
        string GetBindChangeValue(string changeItem, string areaCode, string[] parameters);

        #endregion

        #region 人员信息 张剑
        /// <summary>
        /// 获取企业下的普通工人信息列表
        /// </summary>
        /// <param name="corpUserGuid">企业Guid</param>
        /// <param name="condition">sql where</param>
        /// <param name="pageIndex">页数</param>
        /// <param name="pageSize">条数</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonEmployees(string corpUserGuid, string condition, int pageIndex, int pageSize, out int count, string areaCode);

        [OperationContract]
        string GetPersonManagersByCorpUserGuid(string corpUserGuid, string condition, int pageIndex, int pageSize, out int count, string type, string areaCode);


        /// <summary>
        /// 获取企业下的指定工人的证书列表
        /// </summary>
        /// <param name="empGuid">empGuid</param>
        /// <param name="condition">sql where</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonTitleDetails(string empGuid, string condition, string areaCode);

        /// <summary>
        /// 批量导入人员
        /// </summary>
        /// <param name="data"></param>
        /// <param name="corpguserguid"></param>
        /// <param name="areaCode"></param>
        /// <param name="creator"></param>
        /// <returns></returns>
        [OperationContract]
        string BatchImportPersonInfo(string data, int? groupID, string corpguserguid, string areaCode, string creator);
        #endregion

        #region 证书信息 张剑
        /// <summary>
        /// 获取指定企业下的证书变更记录
        /// </summary>
        /// <param name="corpUserGuid">corpGuid</param>
        /// <param name="flowCode">flowCode</param>
        /// <param name="condition">sql</param>
        [OperationContract]
        string GetPersonQualityChanges(string corpUserGuid, string flowCode, string condition, int pageindex, int pagesize, out int count, string areaCode);

        [OperationContract]
        string GetPersonBQualityChanges(string corpUserGuid, string flowCode, string condition, int pageindex, int pagesize, out int count, string areaCode);

        /// <summary>
        /// 上报证书变更记录
        /// </summary>
        /// <param name="changeIds">变更记录ID列表。（IList String）</param>
        /// <param name="userGuid">用户GUID。</param>
        /// <param name="userRole">用户角色。</param>
        /// <param name="userName">用户名称。</param>
        /// <returns></returns>
        [OperationContract]
        string SubmitQualityChange(string changeIds, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string SubmitBQualityChange(string changeIds, string userGuid, string userRole, string userName, string areaCode);

        /// <summary>
        /// /人员资格变更添加
        /// </summary>
        /// <param name="changeSetInfo"></param>
        /// <param name="changeInfo"></param>
        /// <param name="userGuid"></param>
        /// <param name="userRole"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        [OperationContract]
        string AddPersonQualityChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);
        /// <summary>
        /// 人员资质B证变更添加
        /// </summary>
        /// <param name="changeSetInfo"></param>
        /// <param name="changeInfo"></param>
        /// <param name="userGuid"></param>
        /// <param name="userRole"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        [OperationContract]
        string AddPersonQualityBChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string EditPersonQualityChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string EditPersonQualityBChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);

        /// <summary>
        /// 获取证书变更信息
        /// </summary>
        /// <param name="changeSetId">变更记录Id</param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonQualityDetails(int changeSetId, string areaCode);

        //[OperationContract]
        //string SubmitQualityChange(string changeIds, string userGuid, string userRole, string userName);

        [OperationContract]
        string DeleteQualityChange(string changeId, string userGuid, string userRole, string userName, string areaCode);

        //[OperationContract]
        //string GetPersonQualityDetails(int changeSetId);

        [OperationContract]
        string DeleteBQualityChange(string changeId, string userGuid, string userRole, string userName, string areaCode);

        [OperationContract]
        string GetPersonBQualityDetails(int changeSetId, string areaCode);
        /// <summary>
        /// 人员资格变更信息修改
        /// </summary>
        [OperationContract]
        string EditPersontQualityChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);
        /// <summary>
        /// 人员资格变更B证信息修改
        /// </summary>
        [OperationContract]
        string EditPersontQualityBChange(string changeSetInfo, string changeInfo, string userGuid, string userRole, string userName, string areaCode);

        #endregion

        #region 人员、人员资质的 增删改、上报、审核
        [OperationContract]
        string EmpInfoAdd(string corpUserGuid, string emp, string empQualities, string workExps, bool isReturnModel, string areaCode);
        [OperationContract]
        string EmpInfoEdit(string corpUserGuid, string roleid, string emps, string empQualities, string workExps, string areaCode);
        [OperationContract]
        string EmpInfoDel(IList<string> empGuids, string areaCode);
        [OperationContract]
        string EmpInfoPost(string corpUserGuid, string emps, string log, string areaCode);
        [OperationContract]
        string EmpStatusEdit(string corpUserGuid, string empGuid, string flowCode, string areaCode);
        [OperationContract]
        string EmpQualityAdd(string corpUserGuid, string empGuid, string empQualities, bool isReturnModel, string areaCode);
        [OperationContract]
        string EmpQualityDel(string educationGUID, string areaCode);
        [OperationContract]
        string EmpQualityPost(string corpUserGuid, string empGuid, string areaCode);
        [OperationContract]
        string EmpQualityEdit(string corpUserGuid, string empGuid, string empQualities, string areaCode);

        //[OperationContract]
        //bool EmpTransferOut(string corpUserGuid, string empGuids);
        /// <summary>
        /// 根据人员身份证号信息查询是否注册
        /// </summary>
        /// <param name="idCard"></param>
        /// <returns></returns>
        [OperationContract]
        string EmpRegisterValidation(string idCard, string areaCode);
        /// <summary>
        /// 查询企业人员详情
        /// </summary>
        /// <param name="corpuserguid"></param>
        /// <param name="empguid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetEmployManagerInfo(string corpuserguid, string empguid, string areaCode);

        /// <summary>
        /// 查询企业负责人详情
        /// </summary>
        /// <param name="corpuserguid"></param>
        /// <param name="empguid"></param>
        /// <returns></returns>
        //[OperationContract]
        //string GetEmployeeInfo(string corpuserguid, string empguid);

        /// <summary>
        /// 查询企业人员资质
        /// </summary>
        /// <param name="empguid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetEmpQualities(string empguid, string areaCode);

        [OperationContract]
        string GetEmpQualitiesByGroupId(string empGuid, string areaCode, string groupId);

        [OperationContract]
        string GetCorpList(string dogid, string corpname, string corptype, string username, int[] numarr, out int count, int pageIndex, int pageSize, string areaCode);

        [OperationContract]
        string GetManagerCount(string dogid, string corpuserguid, string typeflag, string areaCode);

        /// <summary>
        /// 查询企业人员列表
        /// </summary>
        /// <param name="pageCount"></param>
        /// <param name="pageSize"></param>
        /// <param name="conditions"></param>
        /// <returns></returns>
        [OperationContract]
        string GetEmpManagerInfoList(int pageCount, int pageSize, string conditions, string areaCode, string systemid, out int count);

        [OperationContract]
        string GetEmpManagerInfoListReg(int pageCount, int pageSize, string conditions, string areaCode, string systemid, out int count);

        ///// <summary>
        ///// 获取人员列表
        ///// </summary>
        ///// <param name="pageCount"></param>
        ///// <param name="pageSize"></param>
        ///// <param name="conditions"></param>
        ///// <returns></returns>
        //[OperationContract]
        //string GetEmpManagerList(int pageCount, int pageSize, string conditions);
        [OperationContract]
        string GetEmpManagersAllList(int pageCount, int pageSize, string conditions, string areaCode);
        [OperationContract]
        int GetEmpManagersAllCount(string conditions, string areaCode);
        [OperationContract]
        string GetEmpManagersList(int pageCount, int pageSize, string conditions, string areaCode);
        [OperationContract]
        int GetEmpManagerListCount(string conditions, string areaCode);
        [OperationContract]
        string EmpPersonInfoAdd(string corpUserGuid, string emp, string empQualities, string empPosts, bool isReturnModel, string areaCode);
        [OperationContract]
        string EmpPersonInfoEdit(string corpUserGuid, string emps, string empQualities, string empPosts, string areaCode);
        /// <summary>
        /// 企业工作人员统计
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <param name="areaCode"></param>
        /// <returns></returns>
        [OperationContract]
        string GetEmpCounts(string corpUserGuid, string areaCode);
        [OperationContract]
        int GetEmpCount(string conditions, string areaCode);
        /// <summary>
        /// 获取企业负责人列表
        /// </summary>
        /// <param name="pageCount"></param>
        /// <param name="pageSize"></param>
        /// <param name="conditions"></param>
        /// <returns></returns>
        //[OperationContract]
        //string GetEmployeeInfoList(int pageCount, int pageSize, string conditions);

        /// <summary>
        /// 主管审核企业人员信息
        /// </summary>
        /// <param name="empGuids"></param>
        /// <param name="isAuditQualities"></param>
        /// <param name="areaCode"></param>
        /// <param name="log"></param>
        /// <param name="flowCode"></param>
        /// <param name="isFinal"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        [OperationContract]
        string EmpInfoAudit(string empGuids, bool isAuditQualities, string areaCode, string log, string flowCode, string description, bool isFinal, bool isunlockandback);

        /// <summary>
        /// 主管审核企业人员资质
        /// </summary>
        /// <param name="qualities"></param>
        /// <param name="areaCode"></param>
        /// <param name="log"></param>
        /// <param name="flowCode"></param>
        /// <param name="isFinal"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        [OperationContract]
        string EmpQualityAudit(string qualities, string areaCode, string log, string flowCode, bool isFinal);
        /// <summary>
        /// 删除企业人员资质多项
        /// </summary>
        /// <param name="educationGUIDs"></param>
        /// <param name="empGuid"></param>
        /// <param name="areaCode"></param>
        /// <returns></returns>
        [OperationContract]
        string EmpQualityMultiDel(string educationGUIDs, string empGuid, string areaCode);
        /// <summary>
        /// 主要工作经历 查询
        /// </summary>
        /// <param name="empguid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetWorkExperienceList(string empguid, string areaCode);

        [OperationContract]
        string CheckWorkExperience(string empGuid, string areaCode);

        /// <summary>
        /// 人员主要工作经历添加
        /// </summary>
        /// <param name="workExp"></param>
        /// <returns></returns>
        [OperationContract]
        string WorkExperienceAdd(string workExp, string areaCode);

        /// <summary>
        /// 人员主要工作经历修改
        /// </summary>
        /// <param name="workExp"></param>
        /// <returns></returns>
        [OperationContract]
        string WorkExperienceEdit(string workExp, string areaCode);
        [OperationContract]
        string WorkExperienceDel(string workExpId, string empGuid, string areaCode);
        /// <summary>
        /// 设置项目主管
        /// </summary>
        /// <param name="empguids"></param>
        /// <param name="corpuserguid"></param>
        /// <param name="corpname"></param>
        /// <param name="corproleid"></param>
        /// <param name="typeflag"></param>
        /// <param name="typename"></param>
        /// <returns></returns>
        [OperationContract]
        string SetProjectManger(string empguids, string corpInfo, string roleid, string typeflag, string typename, string areaCode);

        #endregion

        #region 企业人员管理
        [OperationContract]
        string GetEmpManager(string userId, string areaCode);
        /// <summary>
        /// 根据typeFlag、corpUserGuid查询详细
        /// </summary>
        /// <returns></returns>     
        [OperationContract]
        string GetEmployeeInfo(int typeFlag, string corpUserGuid, string areaCode);

        [OperationContract]
        string GetEnterpriseEmployeeList(string typeFlags, string corpUserGuid, string areaCode);

        /// <summary>
        /// 主管端
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetAdminEmployeeInfoList(string corpUserGuid, string areaCode);

        /// <summary>
        /// 根据corpUserGuid获取5大员列表
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string GetEmployeeInfoList(string corpUserGuid, int type, int systemid, string areaCode);
        [OperationContract]
        string GetEmployeeInfoFlowList(string corpUserGuid, int type, string areaCode);

        /// <summary>
        /// 添加人员信息
        /// </summary>
        /// <param name="emp"></param>
        /// <returns></returns>
        [OperationContract]
        string EmployeeAdd(string emp, string areaCode);

        /// <summary>
        /// 修改人员信息
        /// </summary>
        /// <param name="emp"></param>
        /// <returns></returns>
        [OperationContract]
        string EmployeeEdit(string corpUserGuid, string emps, string areaCode);

        /// <summary>
        /// 添加人员信息（需进行审核）
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <param name="emps"></param>
        /// <returns></returns>
        [OperationContract]
        string EmployeeChangeAdd(string corpUserGuid, string emps, string areaCode);

        /// <summary>
        /// 修改人员信息（需进行审核）
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <param name="emps"></param>
        /// <returns></returns>
        [OperationContract]
        string EmployeeChangeEdit(string corpUserGuid, string emps, string areaCode);

        /// <summary>
        /// 人员信息修改上报
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <returns></returns>
        [OperationContract]
        string EmployeeChangePost(string corpUserGuid, string areaCode);

        /// <summary>
        /// 查询tb_Emp_Manager审核状态
        /// </summary>
        /// <param name="empGuid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetEmpInfoFlowCode(string empGuid, string areaCode);

        /// <summary>
        /// 人员信息修改审核
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <param name="log"></param>
        /// <param name="flowCode"></param>
        /// <param name="isFinal"></param>
        /// <returns></returns>
        [OperationContract]
        string EmployeeChangeAudit(string corpUserGuid, string log, string flowCode, string description, bool isFinal, string areaCode);

        /// <summary>
        /// 获取企业管理人员变更审核状态
        /// </summary>
        /// <param name="corpUserGuid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetEmployeeChangeStatus(string corpUserGuid, string areaCode);
        #endregion

        #region 个人端：个人修改密码、主管修改密码、个人验证登录、查询考核结果
        /// <summary>
        /// 个人修改密码
        /// </summary>
        /// <param name="empGuid"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdatePersonPwd(string empGuid, string pwd, string areaCode);

        /// <summary>
        /// 主管修改密码
        /// </summary>
        /// <param name="userGuid"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        [OperationContract]
        string UpdateUserPwd(string userGuid, string pwd, string areaCode);

        /// <summary>
        /// 个人验证登录
        /// </summary>
        /// <param name="IDCard"></param>
        /// <param name="TypeFlag"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        [OperationContract]
        string ValidPersonLogin(string IDCard, string TypeFlag, string pwd, string areaCode);

        /// <summary>
        /// 查询考核结果
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="condition"></param>
        /// <returns></returns>
        [OperationContract]
        string GetSorcePublishList(int pageIndex, int pageSize, string condition, out int counts, string areaCode);
        [OperationContract]
        string GetSorcePublishLists(string condition, out int counts, string areaCode);

        [OperationContract]
        DataTable GetKaoheRst(string bFlag, string queryStr, string querymember, string outer, string zizhi, string areaCode, int pageIndex, int pageSize, out int dataCount);

        #endregion

        #region 查询项目经理是否押证
        /// <summary>
        /// 查询项目经理是否押证
        /// </summary>
        /// <param name="idcard"></param>
        /// <returns></returns>
        [OperationContract]
        string CheckXMFZR(string empId);
        [OperationContract]
        string CheckPersonXMFZR(string empId, string roleId, string area);

        /// <summary>
        /// 人员押证查询-获取人员信息（多项）
        /// </summary>
        /// <param name="empId"></param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonForXMFZR(string empId, string areaCode);
        /// <summary>
        /// 押证操作
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        bool EmpLockCertificate(string projectName, string ProjectKind, string CorpName,
                                       string xmjlName, string xmjlCode, string xmjlID,
                                       string areacode, string bidid, string zbkindclassid);

        /// <summary>
        /// 解证操作
        /// </summary>
        /// <param name="xmjlID"></param>
        /// <param name="bidid"></param>
        /// <returns></returns>
        [OperationContract]
        bool EmpUnlockCertificate(int xmjlID, int bidid, string areaCode);
        #endregion

        #region 人员业绩

        /// <summary>
        /// 获取人员业绩
        /// </summary>
        /// <param name="empGuid"></param>
        /// <returns></returns>
        [OperationContract]
        string GetManager_e_OuterPrize(string empGuid, int pageIndex, int pageSize, string areaCode);

        /// <summary>
        /// 获取人员业绩总条数
        /// </summary>
        /// <param name="empGuid"></param>
        /// <returns></returns>
        [OperationContract]
        int GetManager_e_OuterPrizeCount(string empGuid, string areaCode);
        #endregion

        #region 人员解锁、加锁
        [OperationContract]
        bool LockEmpManagerBCanBid(string empGuid, string areaCode);
        [OperationContract]
        bool UnLockEmpManagerBCanBid(string empGuid, string areaCode);
        #endregion

        #region 主管处罚登记

        [OperationContract]
        string GetPunishmentList(int dogid, string strwhere, int pageIndex, int pageSize, out int count, string areaCode);

        [OperationContract]
        string GetDeDuck(int id, int itemid, string areaCode);

        [OperationContract]
        string GetPrizeFlag(string areaCode);
        #endregion

        #region 人员转入转出

        [OperationContract]
        string PersonToExit(string corpUserGuid, IList<string> emps, string log, string areaCode);

        [OperationContract]
        string PersonToEntry(string corpUserGuid, IList<string> changeSetIDs, string log, string areaCode);

        [OperationContract]
        string PersonToPost(IList<string> changeSetIDs, string log, string areaCode);

        [OperationContract]
        string PersonToAudit(List<string> changeSetIDs, string AuditFlowCode, string log, string areaCode);

        [OperationContract]
        string PersonToExitAudit(List<string> changeSetIDs, string AuditFlowCode, string log, string areaCode);

        [OperationContract]
        string PersonToDel(List<string> changeSetIDs, string log, string areaCode);

        [OperationContract]
        string GetEmpGuidBySetID(string setID, string areaCode);

        [OperationContract]
        string GetPersonToEntryList(string condition, int pageIndex, int pageSize, out int count, string areaCode);

        [OperationContract]
        string GetPersonToExitList(string condition, int pageIndex, int pageSize, out int count, string areaCode);

        [OperationContract]
        string GetPersonWantToExit(string corpUserGuid, string condition, int pageIndex, int pageSize, out int count, string areaCode);

        [OperationContract]
        string GetPersonToWaitArea(string condition, int pageIndex, int pageSize, out int count, string areaCode);

        [OperationContract]
        string GetFlowCodeExit(string corpUserGuid, string empGuid, string areaCode);

        [OperationContract]
        string GetPersonExitLogId(string setId, string corpUserGuid, string empGuid, string areaCode);

        #endregion

        #region 公告模块
        [OperationContract]
        string NoticeAdd(string notice, string entityguidlist, string areaCode);

        [OperationContract]
        string NoticeEdit(string noticeinfo, string areaCode);

        [OperationContract]
        string NoticeDelete(string idlist, string areaCode);

        [OperationContract]
        string GetNoticeInfo(int id, string areaCode);

        [OperationContract]
        string GetAllNotice(string noticeinfo, string logintype, string entityguid, string areaCode);

        [OperationContract]
        string AddViewCount(int id, string areaCode);
        #endregion

        #region 查询操作日志
        /// <summary>
        /// 查询操作日志
        /// </summary>
        /// <param name="objectId">对象唯一标识</param>
        /// <param name="codeType">业务标识</param>
        /// <param name="areaCode">市场范围地区</param>
        /// <returns></returns>
        [OperationContract]
        string GetUserLog(string objectId, string areaCode);

        [OperationContract]
        string GetUserLogList(int pageCount, int pageSize, string objectId, string userRole, string areaCode);
        [OperationContract]
        int GetUserLogCount(string objectId, string userRole, string areaCode);
        #endregion

        #region 人员信息
        /// <summary>
        /// 安全考核证
        /// </summary>
        [OperationContract]
        string GetEmpTitleDetailsExt(string empGuid, string areaCode);

        /// <summary>
        /// 职称信息
        /// </summary>
        [OperationContract]
        string GetEmpEmpPosts(string empGuid, string areaCode);

        /// <summary>
        /// 身份证是否存在
        /// </summary>
        [OperationContract]
        string IDCardIsExists(string idCard, string corpUserGuid, string empGuid, string areaCode);

        /// <summary>
        /// 返回审核状态
        /// </summary>
        [OperationContract]
        string GetFlowCodes(string corpUserGuid, string empGuid, int optType, string areaCode);

        [OperationContract]
        string EmpInfoEditTypeFlag(string empGuid, string typeFlag, string areaCode);
        [OperationContract]
        string EmpInfoAddTypeFlag(string empGuid, string typeFlag, string areaCode);
        [OperationContract]
        string CheckCorpStasus(string corpUserGuid, int optType, string currentAreaCode, string areaCode);
        [OperationContract]
        string EmpInfoImport(string corpUserGuid, IList<string> emps, string areaCode);
        [OperationContract]
        string GetEmpFlowStatus(string empGuid, string areaCode);
        [OperationContract]
        string GetPsnFileNames(string empGuids, string appId, string areaCode);
        [OperationContract]
        string CheckEmpIsExist(string empGuid, string areaCode);
        [OperationContract]
        string GetQualityCodeValid(string code, string typeFlags, string certLevel, string areaCode);
        [OperationContract]
        string CheckQualityCodeValid(string code, string typeFlags, string certLevel, string certCode, string areaCode);

        [OperationContract]
        string GetPersonEmpStatistic(string flowCode, string areaCode);

        [OperationContract]
        string GetPersonCertStatistic(string flowCode, string areaCode);

        [OperationContract]
        string GetPersonExpertStatistic(int classId, string areaCode, byte? isShenBao);

        [OperationContract]
        string GetExpertBMStatistic(int qcId, string currentCode, string areaCode);

        [OperationContract]
        string CheckEmpManualIsExist(string corpGuid, string empGuid, string zgzs, string areaCode);

        [OperationContract]
        string GetEmpImportList(int pageCount, int pageSize, string conditions, string areaCode);

        [OperationContract]
        int GetEmpImportCount(string conditions, string areaCode);

        [OperationContract]
        string GetEmpManagerOtherList(int pageCount, int pageSize, string conditions, string certList, string areaCode);

        [OperationContract]
        int GetEmpManagerOtherListCount(string conditions, string certList, string areaCode);

        [OperationContract]
        string GetEmpManagerByCerts(out int cnt, int pageCount, int pageSize, string conditions, string certList, string areaCode);

        [OperationContract]
        string GetEmpManagerCertList(out int cnt, int pageCount, int pageSize, string conditions, string areaCode);

        #endregion

        #region 判断管理人员审核状态 2013-10-19 毛凯
        [OperationContract]
        string CheckManagerStatus(string corpUserGuid, string typeFlag, string empGuid, int opt, string currentAreaCode);
        #endregion

        #region 人员添加执业手册
        [OperationContract]
        string GetEmpCertList(string condition,
           int pageNum,
           int pageSize,
           string areaCode);
        [OperationContract]
        int GetEmpCertListCount(string condition, string areaCode);
        [OperationContract]
        string GetCardFlowCodes(string corpUserGuid, string empGuid, string cardGuid, int codeType, int optType, string areaCode);
        [OperationContract]
        string GetEmpTitleDetails(string empGuid, int codeType, string areaCode);
        [OperationContract]
        string GetEmpPersonXMZJ(string empGuid, string areaCode);
        [OperationContract]
        string GetEmpCertInfoPrint(string empGuid, string typeFlag, string certCode, string areaCode);
        [OperationContract]
        string ImportEmpTitleDetails(string idCard, string empGuid, string areaCode);
        [OperationContract]
        string EmpTitleDetailsEditRemark(string empGuid, string eduGUIDs, string remark, string areaCode);
        #endregion

        #region 获取人员考核分数
        [OperationContract]
        string GetPsnAssessInfo(string empGuid, int bgrade, int bFlag, string areaCode);
        #endregion

        #region 考试管理
        [OperationContract]
        bool Exam(string groupCode, string areaCode, string groupAddress);
        [OperationContract]
        bool ReportExam(string empGuid, string corpUserGuid, string areaCode);
        [OperationContract]
        string GetReportExamList(int pageCount, int pageSize, string conditions, string areaCode);
        [OperationContract]
        int GetReportExamListCount(string conditions, string areaCode);

        #endregion

        #region 外网人员查询
        [OperationContract]
        string GetPortalEmpList(int pageCount, int pageSize, string conditions, string areaCode);
        [OperationContract]
        int GetPortalEmpListCount(string conditions, string areaCode);
        #endregion

        #region 工程类获奖相关服务
        [OperationContract]
        string GetManagerListByCorpGuid(string condition, string areaCode);

        //[OperationContract]
        //string GetXMZJListByCorpGuid(string corpname, string pa, string areaCode);

        //[OperationContract]
        //string GetZjListByPersonName(string corpid, string corpname, string pa, string areaCode);

        //[OperationContract]
        //string GetZbDlManagerByCondition(string corpname, string areaCode);

        [OperationContract]
        string GetEmpListByCorpID(string strWhere, string areacode);

        #endregion

        #region 青岛招标代理系统首页人员信息统计
        [OperationContract]
        string PersonStatis(int roleid, string areaCode);

        [OperationContract]
        string GetManagerListZBDL(string queryCondition, out int count, int pageIndex, int pageSize, string areaCode);
        #endregion

        #region 专家注册

        [OperationContract]
        string ExpertReg(string user, string corp, string expert, string areaCode);

        #endregion

        #region 专家专业与关系
        [OperationContract]
        string GetExpertSpecialityList(string empGuid, string areaCode);

        [OperationContract]
        string ExpertMainSpecCheck(string empGuid, string areaCode);

        [OperationContract]
        string GetExpertSpeciality(string specialityGuid, string areaCode);

        [OperationContract]
        string GetSpecialityTitle(int sid, string areaCode);

        [OperationContract]
        string SaveExpertSpecialityInfo(string sepcModel, string areaCode);

        [OperationContract]
        string DeleteSpeciality(string specialityGuid, string areaCode);

        [OperationContract]
        string GetUserRelationList(string userGuid, int flag, string areaCode);

        [OperationContract]
        string GetUserRelationInfo(string gid, string areaCode);

        [OperationContract]
        string SaveUserRelationInfo(string relationModel, string areaCode);

        [OperationContract]
        string DeleteUserRelation(string gid, string areaCode);

        [OperationContract]
        string UpdateUserRelationCorp(string userGuid, int classid, string entityName, string newName, string areaCode);

        [OperationContract]
        string DeleteUserRelationCorp(string userGuid, int classid, string entityName, string areaCode);
        #endregion

        #region 专家信息管理

        [OperationContract]
        string GetExpertList(int pageNo, int pageSize, string psnName, string corpName, string areaCode);

        [OperationContract]
        int GetExpertCount(string psnName, string corpName, string areaCode);

        [OperationContract]
        void YtdlAdd(string empGuid, string areaCode);

        [OperationContract]
        string GetExpertsList(out int count, int pageNum, int pageSize, string conditions, string areaCode);

        [OperationContract]
        int GetExpertsCount(string conditions, string areaCode);

        [OperationContract]
        string GetExpertInfo(string conditions, string areaCode);

        [OperationContract]
        string EditExpertInfo(string expertModel, string areaCode);

        [OperationContract]
        string ExpertInfoPost(string corpUserGuid, string emps, string log, string areaCode);

        [OperationContract]
        string GetExpertGLDInfo(string tel);

        [OperationContract]
        string GetNonPostExperts(string areaCode, string name);

        [OperationContract]
        string GetOldExpertList(out int count, int pageNum, int pageSize, string conditions);
        #endregion

        #region 考试报名

        [OperationContract]
        string GetExamQCList(string code,
            string roleid,
            string page,
            string appid,
            int pageIndex,
            int pageSize,
            out int dataCount);

        [OperationContract]
        string AddExamQC(string qc);

        [OperationContract]
        string EditExamQC(string qc);

        [OperationContract]
        string DeleteExamQC(int qcid);

        [OperationContract]
        string GetExamQC(int qcid);

        [OperationContract]
        string GetExamKMList(string code,
            string roleid,
            string page,
            string appid,
            string qcid,
            int pageIndex,
            int pageSize,
            out int dataCount);

        [OperationContract]
        string AddExamKM(string km);

        [OperationContract]
        string EditExamKM(string km);

        [OperationContract]
        string DeleteExamKM(int kmid);

        [OperationContract]
        string GetExamKM(int kmid);

        [OperationContract]
        string GetExamKCList(
           string code,
           string roleid,
           string appId,
           string qcid,
           string kmid,
           string page,
           int pageIndex,
           int pageSize,
           out int dataCount);

        [OperationContract]
        string AddExamKC(string kc);

        [OperationContract]
        string EditExamKC(string kc);

        [OperationContract]
        string DeleteExamKC(int kcid);

        [OperationContract]
        string GetExamKC(int kcid);

        [OperationContract]
        string GetExamBMList(string code,
            string roleid,
            string page,
            string appid,
            int qcid,
            string areacode,
            string empStr,
            int requestType,
            int pageIndex,
            int pageSize,
            out int dataCount);

        [OperationContract]
        string GetBMEmpList(int treeid);

        [OperationContract]
        string AddBMInfo(string bmInfo);

        [OperationContract]
        string EditBMInfo(string bmInfo);

        [OperationContract]
        string PayExamFee(string payInfo, int qcID);

        [OperationContract]
        string CancelBMInfo(int bmID);

        [OperationContract]
        string GetBMChangeEmpList(int subid,
            string appid,
            int pageIndex,
            int pageSize,
            out int dataCount);

        [OperationContract]
        string BMChangeEmp(string change);

        [OperationContract]
        string GetKCZCList(string code,
            string roleid,
            string page,
            string appid,
            int kcid,
            string corpuserguid,
            int pageIndex,
            int pageSize,
            out int dataCount);

        [OperationContract]
        DataTable BMStatistics(
            string code,
            string roleid,
            string page,
            string appid,
            int qcid,
            string areaCode);

        [OperationContract]
        string GetScoreList(string code,
            string roleid,
            string page,
           string corpuserguid,
           string appid,
           int qcid,
           int pageIndex,
           int pageSize,
           out int dataCount);

        [OperationContract]
        string GetZKZList(
            string code,
            string roleId,
            string page,
            string appId,
            int qcId,
            string areaCode,
            string corpName,
            string corpUserGuid,
            string empName,
            string ids,
            int pageIndex,
            int pageSize,
            out int dataCount);

        [OperationContract]
        string IsExamFeePaid(int qcID, Guid userGuid);

        [OperationContract]
        string GetExpertExamType(Guid userGuid);

        #endregion

        #region 项目负责人在建项目查询

        [OperationContract]
        string GetPMUnderConstruction(string name, string idCard, string certificateCode, string corpName, string areaCode);

        [OperationContract]
        string SetPersonIsZZemp(IList<string> empGuids, byte empFlag, string areaCode);

        #endregion

        #region 专家统计

        /// <summary>
        /// 取得前两级专业
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        string GetExpertSpecList(string areaCode);

        /// <summary>
        /// 人员综合统计
        /// </summary>
        /// <param name="flowCode"></param>
        /// <param name="areaCode"></param>
        /// <returns></returns>
        [OperationContract]
        string GetPersonExpertStatistic3(string currentCode, string areaCode);

        #endregion

        #region 获取人员信息列表 zhjj
        [OperationContract]
        string GetCorpEmpList(string CorpUserGuid, string conditions, int pageCount, int pageSize, out int count);

        [OperationContract]
        int GetManagerZbRegisterByZBDL(string corpUserGuid);
        #endregion

        #region 聊城审核证书
        [OperationContract]
        string EmpCertPost(string corpUserGuid, string certs, string log, string areaCode);

        [OperationContract]
        string GetCertFlowCode(string corpUserGuid, string certGuid, int optType, string areaCode);

        [OperationContract]
        string GetCertFlowByGuid(string eduGuid, string areaCode);

        [OperationContract]
        string EmpPostInfoPost(string corpUserGuid, string certs, string log, string areaCode);
        #endregion

        #region 聊城新增人员服务

        [OperationContract]
        string GetEmpManagerByCertList(int pageCount, int pageSize, string conditions, string certList, string areaCode);

        [OperationContract]
        int GetEmpManagerByCertCount(string conditions, string certList, string areaCode);
        /// <summary>
        /// 按证书类别分组取得人员证书列表,主管审核用
        /// </summary>      
        [OperationContract]
        string GetEmpCertAuditList(int pageIndex, int pageSize, string conditions, string certList, string areaCode, out int count);

        [OperationContract]
        string GetEmpManagerPostList(int pageCount, int pageSize, string conditions, string certList, string areaCode, out int count);
        [OperationContract]
        string EmpPostPost(string empGuid, string areaCode);
        [OperationContract]
        string GetEmpPostByEmpGuid(string empGuid, string areaCode);
        [OperationContract]
        string CheckEmpPostPostRight(string empGuid, string areaCode);
        [OperationContract]
        string GetEmpManagerRepeat(string idCard, string areaCode);
        [OperationContract]
        string GetAllEmpManagerList(string conditions, int pageCount, int pageSize, string corpguid, string areaCode, out int count);
        [OperationContract]
        string GetCorpManager(string corpUserGuid, string areaCode);
        #endregion
    }
}


